FIG. 1 shows a conventional "Advanced Function Presentation" (AFP) printing system 10 for printing a document produced by an application program 12 (i.e., a "print document") on a client computer 200. The client computer 200 may be a conventional personal computer, such as an IBM THINKPAD 701.RTM. computer, available from International Business Machines Corporation of Armonk, N.Y. The application program 12 running on the computer 200 generates a data stream that is a formatted, platform and device independent logical description of the print document. One known specification of such a logical description of a data stream utilized for printing is known as MO:DCA.TM. (Mixed Object Document Architecture), described in detail in I.B.M. Mixed Object Document Architecture Reference number SC31-6802.
The printing system 10 includes a spool 14 for both receiving and spooling the data stream representing the print document from the application program 12. Once received by the spool 14, the data stream is transmitted to a print server 16 that converts the data stream to a device specific data stream by means of a printer driver 18, and a resource library 20 having print control functions. Use of the resource library 20 in this manner is known in the art as "outboard formatting." The resource library 20 is utilized in this manner to tie the logical page description of the print document to a physical medium. Once the data stream is formatted, it is directed to a printer 24 for producing a printed document.
In addition to being formatted for printing on the physical medium, however, the data stream generated by application 12 may also be forwarded and stored (archived) in memory 22 of an archive server 30 for printing at a later date.
Print documents include one or more pages. For example, a telephone company may print all of its telephone bills for a specified week as a single print document. Each page in the telephone company print document may be telephone bills for different customers.
Pages in a print document may have one or more associated "overlays," which are static templates to which the page information is added. Continuing with the telephone company example, an overlay for the telephone bills may be the background of the telephone bill having the company logo, and columns for listing the telephone numbers called. Overlays typically are stored in the resource library 20 and utilized by the printer server 16, when processing the data stream, to produce the printed document.
Below is a generalized representation of a data stream for a two page print document in the MO:DCA format:
______________________________________ BDT Invoke Medium Map X BPG1 . . . EPG1 BPG2 . . . EPG2 EDT ______________________________________
The document includes a Begin Document structured field (BDT) for marking the beginning of the print document, and an End Document structured field (EDT) for marking the end of the document. Similarly, the two pages each have a Begin Page structured field (BPG) for marking the beginning of each page, and an End Page structured field (EPG) for marking the end of each page. The data stream also includes an "Invoke Medium Map X" structured field, which in the AFP print system 10 causes the print server 16 to direct a call to a Medium Map (discussed below) labeled "X" in the resource library 20.
A plurality of Medium Maps are stored in the resource library 20. Medium Maps include certain formatting information for formatting the pages in the data stream to form the printed sheet. Such information may include printing commands that determine, for example, whether the page is on the front side of a sheet of paper or the back side of a sheet of paper, and from which input bin on the printer 24 to draw paper. Medium Maps also include Page Position (PGP) structured fields with one or more repeating groups (discussed below), which include additional formatting information. Each time the print server 16 reads an Invoke Medium Map structured field in the data stream, the formatting information associated with that Medium Map is used for each succeeding page in the print document until either another Medium Map is invoked, or the end of the print document is reached. For example, a print document with nine hundred pages can have a single Medium Map that is used to format the entire document. Conversely, a second Medium Map may be Invoked after any page in that print document such as, for example, at page four hundred.
Repeating groups in PGP structured fields are utilized to position multiple pages in a print document on different "partitions" of a single sheet of paper. More particularly, the sheet of paper is divided into partitions that may include one or more pages of the print document when the sheet is printed. The number of repeating groups in a Medium Map is equal to the number of pages to be printed on a single sheet of paper. For example, an N-up printing scheme printing eight pages on a single piece of paper (discussed in detail in U.S. Pat. No. 5,495,561 to Holt, incorporated herein by reference) has eight repeating groups. Each of the eight repeating groups positions one of the eight pages on the single sheet of paper. The repeating groups each position the pages by specifying information such as the degree of rotation of the page, whether there are overlays to be used with the page, the name of the overlays, which sheet partition to use for positioning and where to position the page on the partition.
When a data stream is processed for printing by the print server 16, a Medium Map is invoked and the PGP repeating groups in that Medium Map successively position each page in the data stream on specified sheets of paper. For example, in a Medium Map for a 3-up simplex format (which has three pages on one side of a single sheet of paper and thus, three repeating groups), the first repeating group positions the first page in the document, the second repeating group positions the second page in the document, and the third repeating group positions the third page in the document. The first repeating group then positions the fourth page, the second repeating group positions the fifth page, etc . . . until the end of document is reached or another Invoke Medium Map structured field is read in the data stream. If a new Invoke Medium Map structured field is read, then the repeating groups in that new Medium Map are utilized for positioning the pages succeeding that invoke structured field until, similarly, either the end of the document is reached, or yet another Invoke Medium Map structured field is read.
After a print document is printed, the print data stream that was sent to the printer may be archived for later printing. It often is desirable to view the archived print data stream in a format identical to the print document, as originally printed in its final form, on a display device. This may be done by configuring a viewing program (viewer) to sequentially read and process the archived data stream in a manner similar to that used when processing the page for printing. This viewing approach is not practical, however, when indexing directly to a single page in a large document. For example, it would take a relatively long time to sequentially go through the noted printing process to view page one-thousand-five hundred in a two thousand page document. Such slow process nevertheless is necessary to determine which Medium Map and which PGP repeating group is associated with the indexed page.
Accordingly, it would be desirable to have a method and apparatus that enables a user to rapidly and efficiently display a final form print document on a display device.